package advanced;

// 字符串切割
public class StringMethod4 {
    public static void main(String[] args) {
        /**
         * String[] split(String regex)方法可将字符串切割为子串，其参数regex是一个正则表达式分隔符，返回字符串数组。
         * 例如，我们使用空格作为分隔符来切割I love Java字符串，结果将返回含有3个元素的字符串数组。
         */

        String str = "I love Java";
        // 将字符串str以空格分隔,并将分割结果赋值给strArr数组
        String[] strArr = str.split(" ");
        // 遍历数组,打印每一个元素
        for (String str1: strArr) {
            System.out.println(str1 + '\t');
        }

        /**
         * 注意，有几种特殊的分隔符：* ^ : | . \，要使用转义字符"\\"转义。
         */
        // 以*切割
        str = "I*love*Java";
        String[] strArr1 = str.split("\\*");
        // 遍历数组,打印每一个元素
        for (String str1: strArr1) {
            System.out.println(str1 + '\t');
        }
        // 以\切割
        str = "I\\love\\Java";
        String[] strArr2 = str.split("\\\\");
        // 遍历数组,打印每一个元素
        for (String str1: strArr2) {
            System.out.println(str1 + '\t');
        }
        // 以|切割
        str = "I|love|Java";
        String[] strArr3 = str.split("\\|");
        // 遍历数组,打印每一个元素
        for (String str1: strArr3) {
            System.out.println(str1 + '\t');
        }

        // 切割为byte数组,使用getBytes()方法将字符串转换为byte数组

        str = "我喜欢Java";
        System.out.println("将字符串转为byte组数：");
        // 将字符串转换为字节数组
        byte[] ascii = str.getBytes();
        // 遍历字节数组,打印每个元素
        for (byte aByte : ascii) {
            System.out.println(aByte + "\t");
        }
        /**
         * 将字节数组转换为字符串的方法很简单，直接实例化一个字符串对象，将字节数组作为构造方法的参数即可
         * 此处的ascii为上面通过字符串转换的字节数组
         * String s = new String(ascii);
         */
    }
}
